/* **************************************************************

   Profile.h:

   ************************************************************** 

   NSim: simulation of a neutron beam experiment,
   written for Perkeo III by F. Buettner and B. Maerkisch

   ************************************************************** */


#ifndef PROFILE_H
#define PROFILE_H

#include <string>

class Profile
{
  public:

	Profile();
	Profile( std::string iFileName );
	virtual ~Profile() {};

	void SetFileName( const std::string &fileName );
	std::string &GetFileName() { return fileName; };
	
	bool GetBool(const std::string &app, const std::string &key, const bool def=false);
	int GetInt(const std::string &app, const std::string &key, const int def=0);
	std::string &GetString(const std::string &app, const std::string &key, const std::string &def=std::string());
	double GetDouble(const std::string &app, const std::string &key, const double def=0.0);

	void SetBool(const std::string &app, const std::string &key, const bool value);
	void SetInt(const std::string &app, const std::string &key, const int value);
	void SetString(const std::string &app, const std::string &key, const std::string &value);
	void SetDouble(const std::string &app, const std::string &key, const double value);

  protected:

	std::string fileName;
	std::string tempstring;
};


#endif
